package com.example.mysql.学习笔记.基础.各种数据类型;

public class 日期 {
}
/**
 *
 *
 * - `YEAR`类型通常用来表示年
 * - `DATE`类型通常用来表示年、月、日
 * - `TIME`类型通常用来表示时、分、秒
 * - `DATETIME`类型通常用来表示年、月、日、时、分、秒
 * - `TIMESTAMP`类型通常用来表示带时区的年、月、日、时、分、秒
 *
 * | 类型      | 名称      | 字节 | 日期格式            | 最小值                  | 最大值                 |
 * | --------- | --------| ---- | ------------------- | ----------------------- | ---------------------- |
 * | YEAR      | 年       | 1    | YYYY或YY            | 1901                    | 2155                   |
 * | TIME      | 时间      | 3    | HH:MM:SS            | -838:59:59              | 838:59:59              |
 * | DATE      | 日期      | 3    | YYYY-MM-DD          | 1000-01-01              | 9999-12-03             |
 * | DATETIME  | 日期时间  | 8    | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00     | 9999-12-31 23:59:59    |
 * | TIMESTAMP | 日期时间  | 4    | YYYY-MM-DD HH:MM:SS | 1970-01-01 00:00:00 UTC | 2038-01-19 03:14:07UTC |
 *       TIMESTAMP 底层是毫秒数  可以根据时区转换  比较 速度快
 *
 * 在MySQL中, YEAR有以下几种存储格式:
 * ●以4位字符串或数字格式表示YEAR类型，其格式为YwY,最小值为1901，最大值为2155。
 * ●以2位字符串格式表示YEAR类型，最小值为00，最大值为99.
 *  。当取值为01到69时，表示2001到2069;
 *  。当取值为70到99时，表示1970到1999;
 *  。当取值整数的0或00添加的话，那么是0000年;
 *  。当取值是日期/字符串的0添加的话，是2000年。
 *
 * DATE 可以不加-可以隐式转换   也可以年用两位展示
 * 不加-  他会自己补   不加:也会自己补
 * @ 也可以当分割府
 * #修改当前的时区
 * SET time_zone ='+9:00';
 *
 * 最好用  DATETIME  因为 时间范围广  DATETIME不便于计算
 */
/** TIME
 * 类型用来表示时间，不包含日期部分。在MySQL中， 需要3个字节的存储空间来存储TIME类型的数据，可以
 * 使用"HH:MM:SS"格式来表示TIME类型，其中, HH表示小时，MM表示分钟，SS表示秒。
 * 在MySQL中,向TIME类型的字段插入数据时，也可以使用几种不同的格式。
 * (1)可以使用带有冒号的字符串，比如'D H:MM:SS'、 'HH:MM:SS'. 'HH:MM'、 'D H:MM' 'D HH '或’ss格
 * 式，都能被正确地插入TIME类型的字段中。其中D表示天,其最小值为0,最大值为34。如果使用带有D格式的字
 * 符串插入TIME类型的字段时，D会被转化为小时，计算格式为D*24+HH。当使用带有冒号并且不带D的字符串表示
 * 时间时，表示当天的时间，比如12:10表示12:10:00 而不是00:12:10。
 * (2)可以使用不带有号的字符串或者数字,格式为HHMMSS‘或者HHMMSS。如果插入-个不合法的字符串或者
 * 数字, MySQL在存储数据时，会将其自动转化为0:0:00进行存储。比如1210, MySQL会将最右边的两位解析成
 * 秒,表示00:12:10,而不是12:10:00。
 * (3)使用CURRENT_TIME()或者NOW()，会插入当前系统的时间。
 * I
 */